package cn.stylefeng.guns.modular.gridsystem.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 设备授权申请请求封装类
 *
 * @author zxw 2022/12/22 14:08
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ApplicationRecordParam extends BaseParam {

    /**
     * 设备编号List
     */
    @NotNull(message = "设备编号列表不能为空", groups = {grant.class})
    private List<String> deviceCodeList;

    /**
     * 项目名
     */
    @NotNull(message = "项目名不能为空", groups = {grant.class})
    private Long projectName;

    /**
     * 甲方单位
     */
    @NotNull(message = "甲方单位不能为空", groups = {grant.class})
    private Long unitName;

    /**
     * 地区
     */
    @NotBlank(message = "地区不能为空", groups = {grant.class})
    private String region;

    /**
     * 所属代理商
     */
    @NotBlank(message = "所属代理商不能为空", groups = {grant.class})
    private String agent;

    /**
     * 授权时长
     */
    @NotNull(message = "授权时长不能为空", groups = {grant.class})
    private Integer authorizedTime;

    /**
     * 授权类型（0：引擎，1：采集端，2：后台）
     */
    @NotNull(message = "授权类型不能为空", groups = {grant.class})
    private Integer type;

    /**
     * 授权设备类型
     */
    @NotNull(message = "授权设备类型不能为空", groups = {grant.class})
    private Long authorizedDeviceType;

    private String remark;

    public @interface  grant{}


}
